package org.kealinghornets.nxtdroid;

import org.kealinghornets.nxtdroid.NXT.LightSensor;
import org.kealinghornets.nxtdroid.NXT.NXTThread;

/**
 * Created by jychuah on 11/3/13.
 */
public class MyNXTThread extends NXTThread {

    int state = 1;
    LightSensor eyeball;

    public MyNXTThread() {
        setNXTThreadName("Bridge Crosser Andres and Ivan");
    }

    public void run() {
        while (state != -1) {
            switch (state) {
                case 1:
                    do_state_1();
                    break;
                default:
                    state = -1;
                    break;
                case 2:
                    do_state_2();
                    break;
                case 3:
                    do_state_3();
                    break;
                case 4:
                    do_state_4();
                    break;
                case 5:
                    do_state_5();
                    break;
                case 6:
                    do_state_6();
                    break;
                case 7:
                    do_state_7();
                    break;

                case 8:
                    do_state_8();

                case 9:
                    do_state_9();

                case 10:
                    do_state_10();

                case 11:
                    do_state_11();

                case 12:
                    do_state_12();

                case 13:
                    do_state_13();


            }
        }
    }

    public void do_state_1() {
        eyeball = getActiveLightSensor(PORT_1);
        runMotor(PORT_A, 100);
        runMotor(PORT_B, -98);
        wait(1400);
        stopMotor(PORT_A);
        stopMotor(PORT_B);
        log("I'm in state 1");
        if (eyeball.getLightValue() > 500) {
            state = 3;
        } else {
            state = 2;
        }

    }

    public void do_state_2() {
        runMotor(PORT_A, -100);
        runMotor(PORT_B, -98);
        wait(2900);
        stopMotor(PORT_A);
        stopMotor(PORT_B);
        log("I'm in state 2");
        state = 4;
    }

    public void do_state_3() {
        runMotor(PORT_A, 100);
        runMotor(PORT_B, -98);
        wait(2800);
        stopMotor(PORT_A);
        stopMotor(PORT_B);
        log("I'm in state 3");
        state = 4;
    }

    public void do_state_4() {
        runMotor(PORT_A, -100);
        runMotor(PORT_B, 98);
        wait(1400);
        stopMotor(PORT_A);
        stopMotor(PORT_B);
        log("I'm in state 4");
        if (eyeball.getLightValue() < 500) {
            state = 5;
        } else {
            state = 6;
        }
    }

    public void do_state_5() {
        runMotor(PORT_A, -100);
        runMotor(PORT_B, -98);
        wait(6300);
        stopMotor(PORT_A);
        stopMotor(PORT_B);
        log("I'm in state 5");
        if (eyeball.getLightValue() > 500) {
            state = 7;
        } else {
            state = 6;
    }}

    public void do_state_6() {
        runMotor(PORT_A, -100);
        runMotor(PORT_B, 98);
        wait(2800);
        stopMotor(PORT_A);
        stopMotor(PORT_B);
        log("I'm in state 6");
        if (eyeball.getLightValue() < 500) {
            state = 6;
        } else {
            state = 5;
    }}
    public void do_state_7() {
        runMotor(PORT_A, -100);
        runMotor(PORT_B, 98);
        wait(2300);
        stopMotor(PORT_A);
        stopMotor(PORT_B);
        state = 8;
    }
    public void do_state_8(){
        runMotor(PORT_A, 100);
        runMotor(PORT_B, -98);
        wait(1800);
        stopMotor(PORT_A);
        stopMotor(PORT_B);
        if (eyeball.getLightValue() < 500) {
            state = 8;
        } else {
            if (eyeball.getLightValue() < 250) {
                state = 10;
            } else {
                state = 9;
                log("I'm in state 8");
            }
        }
    }
        public void do_state_9(){
            runMotor(PORT_A, -100);
            runMotor(PORT_B, 98);
            wait(6000);
            stopMotor(PORT_A);
            stopMotor(PORT_B);
                state = 9;
                if (eyeball.getLightValue() < 500) {
            } else {
                state = 11;
                log("I'm in state 9");
}}
    public void do_state_10(){
        runMotor(PORT_A, -100);
        runMotor(PORT_B, 98);
        wait(2800);
        stopMotor(PORT_A);
        stopMotor(PORT_B);
        log("I'm in state 10");
    }
        public void do_state_11(){
            runMotor(PORT_A, -100);
            runMotor(PORT_B, 98);
            wait(1400);
            stopMotor(PORT_A);
            stopMotor(PORT_B);
            log("I'm in state 11");
}

public void do_state_12(){
    runMotor(PORT_A, -100);
    runMotor(PORT_B, -98);
    wait(4200);
    stopMotor(PORT_A);
    stopMotor(PORT_B);
    if (eyeball.getLightValue() < 500) {
        state = 12;
    } else {
        state = 6;
        log("I'm in state 12");
}
}

public void do_state_13(){
    runMotor(PORT_C, -100);
    wait(500);
    stopMotor(PORT_C);
    log("I'm in state 13");

}}












